package com.cy;

public class Test_000000 {
    public static void main(String[] args) {
        String a = "张三";  //
        String s = new String("李四");
        add(a, s);
        System.out.println("a = " + a);
        System.out.println("s = " + s);
    }
//    虚拟机在堆中开辟一块内存s，并存值”张三”。
//    虚拟机在栈中分配给s一个内存，内存中存的是1中的地址。
//    虚拟机复制一份 s，  我们叫s’，   s和s’ 内存不同 ， 但存的值都是1的地址。
//    将s’传入方法体。
//    方法体在堆中开辟一块内存，并存值”王五”。
//    方法体将s’的值改变，存入5的内存地址。
//    方法结束，方法外打印str，由于s存的是1的地址，所有打印结果是”张三”。

    private static void add(String s, String a) {
        a = "王五";
        s = "刘二";

    }
}